--- title: "02-实操 本地docker配置环境" created: 2025-12-09 aliases: - 实操 本地docker配置环境 tags: - 项目 --- # 实操 本地docker配置环境 ## 下载docker 汉化: ## 准备工作:创建目录结构 在你的电脑上(例如 `D:\` 盘)创建一个文件夹 `D:\Desktop\damai_pro\DamaiEnv`,并在其中创建以下子目录和文件,用于存放配置文件。 ```dos D:\DamaiEnv\ ├── mysql\ │ ├── conf\ │ │ └── my.cnf <-- 需要新建此文件 │ ├── data\ │ └── log\ └── zookeeper\ ├── conf\ │ └── zoo.cfg <-- 需要新建此文件 ├── data\ └── logs\ ``` ## 第一步:创建 Docker 网络 为了让 Elasticsearch 和 Kibana 顺利通信,我们需要先创建一个专用网络 。 ```bash docker network create elk ``` ![[image-52786c33.png]] ## 第二步:安装 MySQL 5.7 **1. 创建配置文件** 在 `D:\DamaiEnv\mysql\conf\` 下新建 `my.cnf`,内容如下 : ```properties [client] default_character_set=utf8 [mysqld] collation_server = utf8_general_ci character_set_server = utf8 ``` **2.关闭本地运行的mysql服务**,否则会因为3306被占用而无法启动容器中的mysql ![[image-4b4594f0.png]] ![[image-117d7ba0.png]] **3. 启动容器** 注意:将 `-v` 后的路径改为你的实际路径。 ```bash docker run -d -p 3306:3306 --privileged=true -v D:\Desktop\damai_pro\DamaiEnv\mysql\log:/var/log/mysql -v D:\Desktop\damai_pro\DamaiEnv\mysql\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci ``` ![[image-154b8533.png]] 4.开放MySQL权限 Docker 容器内的 MySQL 默认只允许 `root` 用户从 `localhost` 登录,而通过客户端(如 Navicat/DataGrip)连接时,来源 IP 是 Docker 网关 IP(例如 `172.17.0.1`),所以会被拒绝。 需要进入 MySQL 容器,修改 `root` 用户的权限,允许任意 IP 连接。 ```bash docker exec -it mysql bash ``` **登录 MySQL**(在容器内部): ```yaml mysql -u root -p 输入密码: root ``` **执行授权 SQL**: ```sql use mysql; update user set host = '%' where user = 'root'; flush privileges; exit; ``` **退出容器**: ```text exit ``` ![[image-5102598e.png]] ## 第三步:安装 Nacos (修复端口版) 文档中指出原命令缺少 `9849` 端口映射会导致无法启动,这里已补全 。 ```bash docker run -d -p 8848:8848 -p 9848:9848 -p 9849:9849 -e MODE=standalone -e nacos.core.auth.enabled=true -e nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 -e nacos.core.auth.server.identity.key=XN3zr6HfJV%LjUPjRBQzBB -e nacos.core.auth.server.identity.value=B3CU%K3AxEAMrgPBdKLRQRL --name nacos-server nacos/nacos-server:v2.2.3 ``` ![[image-5fac3847.png]] ## 第四步:安装 Redis (修复密码版) 同理 关闭本机redis服务 ![[image-4d994e67.png]] 文档指出原命令 `-e requirepass` 无效,需将密码命令放在镜像名之后 。 ```bash docker run -d --name redis -p 6379:6379 redis:6.0.8 --requirepass 123 ``` ![[image-4055b436.png]] ## 第五步:安装 Zookeeper **1. 创建配置文件** 在 `D:\DamaiEnv\zookeeper\conf\` 下新建 `zoo.cfg`,内容如下 : ```properties tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data clientPort=2181 ``` 2. 启动容器 ```bash docker run -d --name zookeeper --privileged=true -p 2181:2181 --restart=always -v D:\Desktop\damai_pro\DamaiEnv\zookeeper\data:/data -v D:\Desktop\damai_pro\DamaiEnv\zookeeper\conf:/conf -v D:\Desktop\damai_pro\DamaiEnv\zookeeper\logs:/datalog zookeeper ``` ![[image-89238db4.png]] ## 第六步:安装 Kafka **关键点**:你需要获取你本机的 IP 地址(打开 CMD 输入 `ipconfig`,找到 IPv4 地址,例如 `192.168.x.x`)。不要使用 `localhost` 或 `127.0.0.1`,否则微服务可能连不上。 ![[image-38d63212.png]] 请将下方命令中的 `YOUR_LOCAL_IP` 替换为你的真实 IP : 比如我的本机 IP 是:`172.20.10.5` ```bash docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.20.10.5:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.20.10.5:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka ``` ![[image-f81ccd7d.png]] 注意:这里假设 Zookeeper 也是通过宿主机 IP 访问(即上面 Zookeeper 映射的 2181 端口)。 **⚠️ 注意事项**: 这个 IP (`172.20.10.5`) 看起来像是连接手机热点或特定局域网分配的。如果你断开网络或切换 Wi-Fi,这个 IP 可能会改变。如果 IP 变了,Kafka 可能会连不上,到时候需要删除旧容器(`docker rm -f kafka`)并用新 IP 重新运行这条命令。 ## 第七步:安装 Elasticsearch (ES) 此步骤需要手动设置密码。 **1. 启动容器** ```bash docker run -d --name es --net elk -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms768m -Xmx768m" -e "xpack.security.http.ssl.enabled=false" -e "xpack.security.enrollment.enabled=true" elasticsearch:8.5.2 ``` ![[image-13ede01c.png]] **初始化密码 (重要)** 容器启动后(需等待几十秒),在 PowerShell 执行以下命令进入交互模式 : ```bash docker exec -it es /bin/bash ``` 进入容器内部后,执行: ```text ./bin/elasticsearch-setup-passwords interactive ``` ![[image-f4283842.png]] **⚠️ 警告**:设置密码时,**不要使用纯数字**,否则 Kibana 可能无法启动,建议使用 `zxc321` 或类似字母+数字组合 。请记住 `elastic` 和 `kibana_system` 用户的密码。(全设置为`zw200495`) ## 第八步:安装 Kibana 将下方命令中的 `你的密码` 替换为上一步设置的 `kibana_system` 用户的密码(或者 elastic 用户密码)。 demo: ```bash docker run -d --name kibana --net elk -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://es:9200 -e ELASTICSEARCH_USERNAME="kibana_system" -e ELASTICSEARCH_PASSWORD="你的密码" -e "I18N_LOCALE=zh-CN" kibana:8.5.2 ``` my: ```bash docker run -d --name kibana --net elk -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://es:9200 -e ELASTICSEARCH_USERNAME="kibana_system" -e ELASTICSEARCH_PASSWORD="zw200495" -e "I18N_LOCALE=zh-CN" kibana:8.5.2 ``` 注:因为使用了 `--net elk`,这里 `ELASTICSEARCH_HOSTS` 可以直接用容器名 `http://es:9200`,无需宿主机 IP。 ![[image-e8d6eeb3.png]] ## 验证安装 ![[image-ceebffe7.png]] 1. **Nacos**: 访问 `http://localhost:8848/nacos` (账号密码均为 nacos)。 ![[image-07b0ac24.png]] 2. **ES**: 访问 `http://localhost:9200` (输入账号 elastic 和你设置的密码)。 ![[image-a35eb5ba.png]] 3. **Kibana**: 访问 `http://localhost:5601`。(输入账号 elastic 和你设置的密码)。 ![[image-05a2d0c6.png]] 4. **MySQL/Redis**: 使用客户端工具(如 Navicat, Redis Desktop Manager)连接 `localhost` 测试。 - redis ![[image-bd2183c8.png]] ![[image-80b5a1a3.png]] - mysql 账号密码都是root ![[image-7324610c.png]] --- **企业级项目导航**:⬅️ [[01-实操|01-实操]] | 02-实操 本地docker配置环境 | ➡️ [[03-实操 项目启动|03-实操 项目启动]]